﻿<%@ Page Language="C#" AutoEventWireup="true" CodeFile="InCom的数据单元与实体类代码生成器.aspx.cs" Inherits="InCom的数据单元与实体类代码生成器" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>InCom的数据单元与实体类代码生成器</title>
</head>
<body>
    <form id="form1" runat="server">
        <%=((byte)122>>7)+"  "+121212.ToString(System.Globalization.CultureInfo.InvariantCulture) %>
    <div>

        AFN(十六进制数):<asp:TextBox ID="txtAfn" runat="server"></asp:TextBox>
        <br />
        FN(多个用,分开如：1,2,3 代表F1,F2,F3)<asp:TextBox ID="txtFn" runat="server"></asp:TextBox>
        &lt;&gt;<br />
    </div>
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="生成数据实体与对应方法" />
        <style>
            #EntityTemplate,#EntityMethodTemplate {
            
            display:none;
            }

        </style>
        <!--  数据单元生成模板 -->
<div runat="server" id="EntityTemplate" >/*********************************************************************
 ****  描    述： &lt;QinCom 通讯协意  #summary# #AFNNAME#  #FN# 数据单元&gt;
 ****  创 建 者： &lt;周渊&gt;
 ****  创建时间： &lt;#Date#&gt;
 ****  修改标识:  修改人: 
 ****  修改日期:  
 ****  修改内容:   
*********************************************************************/
 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace InCom.Entities.UnitEntities
{
         /// &lt;summary&gt;
        ///  #summary#  #FN#数据单元
        /// &lt;/summary&gt;
      public  class #AFNNAME#Entity#FN#:InCom.Utilities.Protocol.IUnitEntity
        {
          private byte _AFN = #AFN#;

            public byte AFN
            {
                get { return _AFN; }
                set { _AFN = value; }
            }
            private ushort _FN = (ushort)InCom.Utilities.Protocol.FN.#FN#;
            public ushort FN
            {
                get { return _FN; }
                set { _FN = value; }
            }
                /// &lt;summary &gt;
        /// 返回当前处理类的版本号,越大越新
        /// &lt;/summary &gt;
        public int Ver
        {
            get { return 0; }
        }
        
        }
    
  }
</div>

<!--  数据单元 处理方法 生成模板 -->
<div runat="server" id="EntityMethodTemplate" >/*********************************************************************
 ****  描    述： &lt;QinCom 通讯协意 #summary#  #AFNNAME#  #FN# 数据单元的处理方法&gt;
 ****  创 建 者： &lt;周渊&gt;
 ****  创建时间： <#Date#&gt;
 ****  修改标识:  修改人: 
 ****  修改日期:  
 ****  修改内容:   
*********************************************************************/
 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace InCom.Entities.UnitEntities
{

         /// &lt;summary&gt;
        ///   #summary#  #FN#数据单元的处理方法
        /// &lt;/summary&gt;
        public class  #AFNNAME#Entity#FN#Method : InCom.Utilities.Protocol.IUnitMethod
        {
            private byte _AFN =  #AFN#;

            public byte AFN
            {
                get { return _AFN; }
                set { _AFN = value; }
            }
            private ushort _FN = (ushort)InCom.Utilities.Protocol.FN.#FN#;
            public ushort FN
            {
                get { return _FN; }
                set { _FN = value; }
            }

            /// &lt;summary &gt;
        /// 返回当前处理类的版本号,越大越新
        /// &lt;/summary &gt;
        public int Ver
        {
            get { return 0; }
        }

        private static string summary = string.Empty;
        /// &lt;summary &gt;
        /// 描述说明
        /// &lt;/summary &gt;
        public string Summary
        {
            get { return summary; }
        }

            /// &lt;summary&gt;
            /// 将当前数据单元转换成为字节数组
            ///&lt;/summary&gt;
            /// &lt;param name="entity"&gt;传入数据单元对像实体&lt;/param&gt;
            /// &lt;returns&gt;&lt;/returns&gt;
            public byte[] GetBuffer(Utilities.Protocol.IUnitEntity entity)
            {
                 //当前数据实体
                #AFNNAME#Entity#FN# current = (#AFNNAME#Entity#FN#)entity;

                List&lt;byte&gt; result = new List&lt;byte&gt;();
                //数据单元标识
                result.AddRange(System.BitConverter.GetBytes(entity.FN));

                //这里开始编写处理数据的方法

               
                //定义返回数据功能
                byte[] retresult = result.ToArray();
                result.Clear();
                result = null;

                throw new NotImplementedException("没有实现方法,无法进行数据单元转换操作");

                //return retresult;

            }


            /// &lt;summary&gt;
            /// 创建一个新的数据单元实体
            /// &lt;/summary&gt;
            /// &lt;param name="buff"&gt;传入字节&lt;/param&gt;
            /// &lt;param name="offset"&gt;字节偏移量&lt;/param&gt;
            /// &lt;param name="surplusDataLength"&gt;剩余可读取字节长度&lt;/param&gt;
            /// &lt;param name="entity"&gt;外部的数据对像实体,这个可以用池去处理&lt;/param&gt;
            /// &lt;returns&gt;返回数据对像&lt;/returns&gt;
            public Utilities.Protocol.IUnitEntity Decompose(byte[] buff, ref int offset,int surplusDataLength,Utilities.Protocol.IUnitEntity  entity=null)
            {
 
                #AFNNAME#Entity#FN# result = null;
                //当传入的对像为null时创建一个新的对像
                if (entity == null)
                {
                    result = new #AFNNAME#Entity#FN#();
                }
                else {
                    result = (#AFNNAME#Entity#FN#)entity;
                }

                throw new NotImplementedException("没有实现方法,无法进行解析数据到数据单元操作");
                
                //return result;
            }
        }
}

</div>

    </form>
</body>
</html>
